#ifndef __WLRENDER_H__
#define __WLRENDER_H__

enum ECR_CLEARFLAG
{
	ECR_None		= 0,
	ECR_Matrix		= 2,
	ECR_Vertex		= 4,
	ECR_Index		= 16,
	ECR_Stream		= ECR_Vertex|ECR_Index,
	ECR_All			= 255
};
class WLRenderInfo
{
private:
public:
	unsigned int m_Revision;
	unsigned int m_ActorID;
	unsigned int m_ResID;
	ECR_CLEARFLAG m_ClearFlag;
	WLVector3 m_Position;
	WLQuaternion m_Rotation;
	WLPrimitive* m_Primitive;
	WLMaterial* m_Material;
};
class WLRender
{
public:
	std::vector<WLRenderInfo> m_RenderInfoArray;
	virtual bool InitDevice(HWND hWnd) = 0;
	virtual void CleanUp() = 0;
	virtual void Render() = 0;
	virtual void PreRender() = 0;

	virtual WLRenderInfo* GetRenderInfo(unsigned int ActorID) = 0;
};
extern WLRender* g_pRender;
#endif